Web services are a standardized way of integrating Web-based applications using various standard languages and interfacing technology (e.g., XML, SOAP, WSDL, and UDDI) available to the public over an Internet protocol backbone. The extensible markup language (XML) is used to tag the data being sent or received. Tagging involves inserting a command in a document that specifies how the document, or a portion thereof, should be formatted. Tags are utilized by all format specifications that store documents as text files. Simple Object Access Protocol (SOAP) provides a way for applications to communicate with each other over the Internet, regardless of platform. SOAP uses XML to define the format of the information, and then adds the necessary HyperText Transfer Protocol (HTTP) headers to send it to a destination. Web Services Description Language (WSDL) is an XML formatted language used to describe the capabilities of a Web service as collections of communication endpoints capable of exchanging messages. Universal Description, Discovery, and Integration (UDDI) is a Web-based distributed directory that enables businesses to list themselves on the Internet and discover each other, similar to a phone book for the Internet.
Web services are used primarily for businesses to communicate with each other, and with clients, allowing organizations to communicate data without intimate knowledge of each other's information technology systems behind firewalls. Firewalls are systems used to prevent unauthorized access to or from private networks. Most often, firewalls are used to prevent Internet users from gaining unauthorized access to a company's or individual's private computer network.
In addition, Web services allow different applications from different sources to communicate with each other without specific coding. All Web service communication occurs in the XML language, so Web services are not tied to a specific operating system or programming language. Instead, Web services can communicate with, and facilitate communication between, multiple different operating systems and languages.
Often, the many users of the Internet, including businesses and clients, have a need for sharing information or data in a secure environment. The Security Assertions Markup Language (SAML) is an XML framework for exchanging security information between parties over the Internet or other distributed network. Many businesses are developing partnerships on the Web. As a result, there is an increase in user-initiated transactions in business-to-consumer scenarios, and XML initiated transactions in business-to-business scenarios. A transaction initiated at one site can be completed at a different site, requiring security information to be shared among the various Web sites involved in a single transaction.
The basic SAML objects are assertions, such as authentication assertions and authorization attributes (attributes that a service uses to make authorization decisions, such as an identifier, a group or role, or other user profile information). SAML assertions are submitted to, and generated by, trusted authorities using a request/response protocol. SAML assertions are embedded in transport and messaging frameworks. SAML defines a message format and protocol for distributing SAML data among trusted partners in a business relationship. SAML's message protocol supports putting data assertions from an authoritative source to a receiver. This allows the exchange of event notifications between to parties in a trusted relationship.
Currently, there is no solution enabling one to propagate a user's authentication/session information between different requests to Web services. The user must be authenticated each time he/she accesses a Web service. The authentication process takes time, thus with each pause for authentication, the user's interaction with the different Web services is made slower.